/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#ifndef DBCOMMON_SRC_DBCOMMON_FUNCTION_FUNC_KIND_H_
#define DBCOMMON_SRC_DBCOMMON_FUNCTION_FUNC_KIND_H_

// clang-format off


/*
 * DO NOT EDIT!"
 */

enum FuncKind {

// OpExpr::setOpFuncId chooses the specific function to use:
// 1. val op val 2. val op vec 3. vec op val 4. vec op vec


  TINYINT_LESS_THAN_TINYINT = 0,
  TINYINT_LESS_THAN_SMALLINT = 1,
  TINYINT_LESS_THAN_INT = 2,
  TINYINT_LESS_THAN_BIGINT = 3,
  TINYINT_LESS_THAN_FLOAT = 4,
  TINYINT_LESS_THAN_DOUBLE = 5,
  SMALLINT_LESS_THAN_TINYINT = 6,
  SMALLINT_LESS_THAN_SMALLINT = 7,
  SMALLINT_LESS_THAN_INT = 8,
  SMALLINT_LESS_THAN_BIGINT = 9,
  SMALLINT_LESS_THAN_FLOAT = 10,
  SMALLINT_LESS_THAN_DOUBLE = 11,
  INT_LESS_THAN_TINYINT = 12,
  INT_LESS_THAN_SMALLINT = 13,
  INT_LESS_THAN_INT = 14,
  INT_LESS_THAN_BIGINT = 15,
  INT_LESS_THAN_FLOAT = 16,
  INT_LESS_THAN_DOUBLE = 17,
  BIGINT_LESS_THAN_TINYINT = 18,
  BIGINT_LESS_THAN_SMALLINT = 19,
  BIGINT_LESS_THAN_INT = 20,
  BIGINT_LESS_THAN_BIGINT = 21,
  BIGINT_LESS_THAN_FLOAT = 22,
  BIGINT_LESS_THAN_DOUBLE = 23,
  FLOAT_LESS_THAN_TINYINT = 24,
  FLOAT_LESS_THAN_SMALLINT = 25,
  FLOAT_LESS_THAN_INT = 26,
  FLOAT_LESS_THAN_BIGINT = 27,
  FLOAT_LESS_THAN_FLOAT = 28,
  FLOAT_LESS_THAN_DOUBLE = 29,
  DOUBLE_LESS_THAN_TINYINT = 30,
  DOUBLE_LESS_THAN_SMALLINT = 31,
  DOUBLE_LESS_THAN_INT = 32,
  DOUBLE_LESS_THAN_BIGINT = 33,
  DOUBLE_LESS_THAN_FLOAT = 34,
  DOUBLE_LESS_THAN_DOUBLE = 35,
  TINYINT_LESS_EQ_TINYINT = 36,
  TINYINT_LESS_EQ_SMALLINT = 37,
  TINYINT_LESS_EQ_INT = 38,
  TINYINT_LESS_EQ_BIGINT = 39,
  TINYINT_LESS_EQ_FLOAT = 40,
  TINYINT_LESS_EQ_DOUBLE = 41,
  SMALLINT_LESS_EQ_TINYINT = 42,
  SMALLINT_LESS_EQ_SMALLINT = 43,
  SMALLINT_LESS_EQ_INT = 44,
  SMALLINT_LESS_EQ_BIGINT = 45,
  SMALLINT_LESS_EQ_FLOAT = 46,
  SMALLINT_LESS_EQ_DOUBLE = 47,
  INT_LESS_EQ_TINYINT = 48,
  INT_LESS_EQ_SMALLINT = 49,
  INT_LESS_EQ_INT = 50,
  INT_LESS_EQ_BIGINT = 51,
  INT_LESS_EQ_FLOAT = 52,
  INT_LESS_EQ_DOUBLE = 53,
  BIGINT_LESS_EQ_TINYINT = 54,
  BIGINT_LESS_EQ_SMALLINT = 55,
  BIGINT_LESS_EQ_INT = 56,
  BIGINT_LESS_EQ_BIGINT = 57,
  BIGINT_LESS_EQ_FLOAT = 58,
  BIGINT_LESS_EQ_DOUBLE = 59,
  FLOAT_LESS_EQ_TINYINT = 60,
  FLOAT_LESS_EQ_SMALLINT = 61,
  FLOAT_LESS_EQ_INT = 62,
  FLOAT_LESS_EQ_BIGINT = 63,
  FLOAT_LESS_EQ_FLOAT = 64,
  FLOAT_LESS_EQ_DOUBLE = 65,
  DOUBLE_LESS_EQ_TINYINT = 66,
  DOUBLE_LESS_EQ_SMALLINT = 67,
  DOUBLE_LESS_EQ_INT = 68,
  DOUBLE_LESS_EQ_BIGINT = 69,
  DOUBLE_LESS_EQ_FLOAT = 70,
  DOUBLE_LESS_EQ_DOUBLE = 71,
  TINYINT_EQUAL_TINYINT = 72,
  TINYINT_EQUAL_SMALLINT = 73,
  TINYINT_EQUAL_INT = 74,
  TINYINT_EQUAL_BIGINT = 75,
  TINYINT_EQUAL_FLOAT = 76,
  TINYINT_EQUAL_DOUBLE = 77,
  SMALLINT_EQUAL_TINYINT = 78,
  SMALLINT_EQUAL_SMALLINT = 79,
  SMALLINT_EQUAL_INT = 80,
  SMALLINT_EQUAL_BIGINT = 81,
  SMALLINT_EQUAL_FLOAT = 82,
  SMALLINT_EQUAL_DOUBLE = 83,
  INT_EQUAL_TINYINT = 84,
  INT_EQUAL_SMALLINT = 85,
  INT_EQUAL_INT = 86,
  INT_EQUAL_BIGINT = 87,
  INT_EQUAL_FLOAT = 88,
  INT_EQUAL_DOUBLE = 89,
  BIGINT_EQUAL_TINYINT = 90,
  BIGINT_EQUAL_SMALLINT = 91,
  BIGINT_EQUAL_INT = 92,
  BIGINT_EQUAL_BIGINT = 93,
  BIGINT_EQUAL_FLOAT = 94,
  BIGINT_EQUAL_DOUBLE = 95,
  FLOAT_EQUAL_TINYINT = 96,
  FLOAT_EQUAL_SMALLINT = 97,
  FLOAT_EQUAL_INT = 98,
  FLOAT_EQUAL_BIGINT = 99,
  FLOAT_EQUAL_FLOAT = 100,
  FLOAT_EQUAL_DOUBLE = 101,
  DOUBLE_EQUAL_TINYINT = 102,
  DOUBLE_EQUAL_SMALLINT = 103,
  DOUBLE_EQUAL_INT = 104,
  DOUBLE_EQUAL_BIGINT = 105,
  DOUBLE_EQUAL_FLOAT = 106,
  DOUBLE_EQUAL_DOUBLE = 107,
  TINYINT_NOT_EQUAL_TINYINT = 108,
  TINYINT_NOT_EQUAL_SMALLINT = 109,
  TINYINT_NOT_EQUAL_INT = 110,
  TINYINT_NOT_EQUAL_BIGINT = 111,
  TINYINT_NOT_EQUAL_FLOAT = 112,
  TINYINT_NOT_EQUAL_DOUBLE = 113,
  SMALLINT_NOT_EQUAL_TINYINT = 114,
  SMALLINT_NOT_EQUAL_SMALLINT = 115,
  SMALLINT_NOT_EQUAL_INT = 116,
  SMALLINT_NOT_EQUAL_BIGINT = 117,
  SMALLINT_NOT_EQUAL_FLOAT = 118,
  SMALLINT_NOT_EQUAL_DOUBLE = 119,
  INT_NOT_EQUAL_TINYINT = 120,
  INT_NOT_EQUAL_SMALLINT = 121,
  INT_NOT_EQUAL_INT = 122,
  INT_NOT_EQUAL_BIGINT = 123,
  INT_NOT_EQUAL_FLOAT = 124,
  INT_NOT_EQUAL_DOUBLE = 125,
  BIGINT_NOT_EQUAL_TINYINT = 126,
  BIGINT_NOT_EQUAL_SMALLINT = 127,
  BIGINT_NOT_EQUAL_INT = 128,
  BIGINT_NOT_EQUAL_BIGINT = 129,
  BIGINT_NOT_EQUAL_FLOAT = 130,
  BIGINT_NOT_EQUAL_DOUBLE = 131,
  FLOAT_NOT_EQUAL_TINYINT = 132,
  FLOAT_NOT_EQUAL_SMALLINT = 133,
  FLOAT_NOT_EQUAL_INT = 134,
  FLOAT_NOT_EQUAL_BIGINT = 135,
  FLOAT_NOT_EQUAL_FLOAT = 136,
  FLOAT_NOT_EQUAL_DOUBLE = 137,
  DOUBLE_NOT_EQUAL_TINYINT = 138,
  DOUBLE_NOT_EQUAL_SMALLINT = 139,
  DOUBLE_NOT_EQUAL_INT = 140,
  DOUBLE_NOT_EQUAL_BIGINT = 141,
  DOUBLE_NOT_EQUAL_FLOAT = 142,
  DOUBLE_NOT_EQUAL_DOUBLE = 143,
  TINYINT_GREATER_THAN_TINYINT = 144,
  TINYINT_GREATER_THAN_SMALLINT = 145,
  TINYINT_GREATER_THAN_INT = 146,
  TINYINT_GREATER_THAN_BIGINT = 147,
  TINYINT_GREATER_THAN_FLOAT = 148,
  TINYINT_GREATER_THAN_DOUBLE = 149,
  SMALLINT_GREATER_THAN_TINYINT = 150,
  SMALLINT_GREATER_THAN_SMALLINT = 151,
  SMALLINT_GREATER_THAN_INT = 152,
  SMALLINT_GREATER_THAN_BIGINT = 153,
  SMALLINT_GREATER_THAN_FLOAT = 154,
  SMALLINT_GREATER_THAN_DOUBLE = 155,
  INT_GREATER_THAN_TINYINT = 156,
  INT_GREATER_THAN_SMALLINT = 157,
  INT_GREATER_THAN_INT = 158,
  INT_GREATER_THAN_BIGINT = 159,
  INT_GREATER_THAN_FLOAT = 160,
  INT_GREATER_THAN_DOUBLE = 161,
  BIGINT_GREATER_THAN_TINYINT = 162,
  BIGINT_GREATER_THAN_SMALLINT = 163,
  BIGINT_GREATER_THAN_INT = 164,
  BIGINT_GREATER_THAN_BIGINT = 165,
  BIGINT_GREATER_THAN_FLOAT = 166,
  BIGINT_GREATER_THAN_DOUBLE = 167,
  FLOAT_GREATER_THAN_TINYINT = 168,
  FLOAT_GREATER_THAN_SMALLINT = 169,
  FLOAT_GREATER_THAN_INT = 170,
  FLOAT_GREATER_THAN_BIGINT = 171,
  FLOAT_GREATER_THAN_FLOAT = 172,
  FLOAT_GREATER_THAN_DOUBLE = 173,
  DOUBLE_GREATER_THAN_TINYINT = 174,
  DOUBLE_GREATER_THAN_SMALLINT = 175,
  DOUBLE_GREATER_THAN_INT = 176,
  DOUBLE_GREATER_THAN_BIGINT = 177,
  DOUBLE_GREATER_THAN_FLOAT = 178,
  DOUBLE_GREATER_THAN_DOUBLE = 179,
  TINYINT_GREATER_EQ_TINYINT = 180,
  TINYINT_GREATER_EQ_SMALLINT = 181,
  TINYINT_GREATER_EQ_INT = 182,
  TINYINT_GREATER_EQ_BIGINT = 183,
  TINYINT_GREATER_EQ_FLOAT = 184,
  TINYINT_GREATER_EQ_DOUBLE = 185,
  SMALLINT_GREATER_EQ_TINYINT = 186,
  SMALLINT_GREATER_EQ_SMALLINT = 187,
  SMALLINT_GREATER_EQ_INT = 188,
  SMALLINT_GREATER_EQ_BIGINT = 189,
  SMALLINT_GREATER_EQ_FLOAT = 190,
  SMALLINT_GREATER_EQ_DOUBLE = 191,
  INT_GREATER_EQ_TINYINT = 192,
  INT_GREATER_EQ_SMALLINT = 193,
  INT_GREATER_EQ_INT = 194,
  INT_GREATER_EQ_BIGINT = 195,
  INT_GREATER_EQ_FLOAT = 196,
  INT_GREATER_EQ_DOUBLE = 197,
  BIGINT_GREATER_EQ_TINYINT = 198,
  BIGINT_GREATER_EQ_SMALLINT = 199,
  BIGINT_GREATER_EQ_INT = 200,
  BIGINT_GREATER_EQ_BIGINT = 201,
  BIGINT_GREATER_EQ_FLOAT = 202,
  BIGINT_GREATER_EQ_DOUBLE = 203,
  FLOAT_GREATER_EQ_TINYINT = 204,
  FLOAT_GREATER_EQ_SMALLINT = 205,
  FLOAT_GREATER_EQ_INT = 206,
  FLOAT_GREATER_EQ_BIGINT = 207,
  FLOAT_GREATER_EQ_FLOAT = 208,
  FLOAT_GREATER_EQ_DOUBLE = 209,
  DOUBLE_GREATER_EQ_TINYINT = 210,
  DOUBLE_GREATER_EQ_SMALLINT = 211,
  DOUBLE_GREATER_EQ_INT = 212,
  DOUBLE_GREATER_EQ_BIGINT = 213,
  DOUBLE_GREATER_EQ_FLOAT = 214,
  DOUBLE_GREATER_EQ_DOUBLE = 215,
  STRING_LESS_THAN_STRING = 216,
  STRING_LESS_EQ_STRING = 217,
  STRING_EQUAL_STRING = 218,
  STRING_NOT_EQUAL_STRING = 219,
  STRING_GREATER_THAN_STRING = 220,
  STRING_GREATER_EQ_STRING = 221,
  BINARY_LESS_THAN_BINARY = 222,
  BINARY_LESS_EQ_BINARY = 223,
  BINARY_EQUAL_BINARY = 224,
  BINARY_NOT_EQUAL_BINARY = 225,
  BINARY_GREATER_THAN_BINARY = 226,
  BINARY_GREATER_EQ_BINARY = 227,
  BOOLEAN_LESS_THAN_BOOLEAN = 228,
  BOOLEAN_LESS_EQ_BOOLEAN = 229,
  BOOLEAN_EQUAL_BOOLEAN = 230,
  BOOLEAN_NOT_EQUAL_BOOLEAN = 231,
  BOOLEAN_GREATER_THAN_BOOLEAN = 232,
  BOOLEAN_GREATER_EQ_BOOLEAN = 233,
  TIMESTAMP_LESS_THAN_TIMESTAMP = 234,
  TIMESTAMP_LESS_EQ_TIMESTAMP = 235,
  TIMESTAMP_EQUAL_TIMESTAMP = 236,
  TIMESTAMP_NOT_EQUAL_TIMESTAMP = 237,
  TIMESTAMP_GREATER_THAN_TIMESTAMP = 238,
  TIMESTAMP_GREATER_EQ_TIMESTAMP = 239,
  DECIMAL_LESS_THAN_DECIMAL = 240,
  DECIMAL_LESS_EQ_DECIMAL = 241,
  DECIMAL_EQUAL_DECIMAL = 242,
  DECIMAL_NOT_EQUAL_DECIMAL = 243,
  DECIMAL_GREATER_THAN_DECIMAL = 244,
  DECIMAL_GREATER_EQ_DECIMAL = 245,


  TINYINT_MUL_TINYINT = 246,
  TINYINT_MUL_SMALLINT = 247,
  TINYINT_MUL_INT = 248,
  TINYINT_MUL_BIGINT = 249,
  TINYINT_MUL_FLOAT = 250,
  TINYINT_MUL_DOUBLE = 251,
  SMALLINT_MUL_TINYINT = 252,
  SMALLINT_MUL_SMALLINT = 253,
  SMALLINT_MUL_INT = 254,
  SMALLINT_MUL_BIGINT = 255,
  SMALLINT_MUL_FLOAT = 256,
  SMALLINT_MUL_DOUBLE = 257,
  INT_MUL_TINYINT = 258,
  INT_MUL_SMALLINT = 259,
  INT_MUL_INT = 260,
  INT_MUL_BIGINT = 261,
  INT_MUL_FLOAT = 262,
  INT_MUL_DOUBLE = 263,
  BIGINT_MUL_TINYINT = 264,
  BIGINT_MUL_SMALLINT = 265,
  BIGINT_MUL_INT = 266,
  BIGINT_MUL_BIGINT = 267,
  BIGINT_MUL_FLOAT = 268,
  BIGINT_MUL_DOUBLE = 269,
  FLOAT_MUL_TINYINT = 270,
  FLOAT_MUL_SMALLINT = 271,
  FLOAT_MUL_INT = 272,
  FLOAT_MUL_BIGINT = 273,
  FLOAT_MUL_FLOAT = 274,
  FLOAT_MUL_DOUBLE = 275,
  DOUBLE_MUL_TINYINT = 276,
  DOUBLE_MUL_SMALLINT = 277,
  DOUBLE_MUL_INT = 278,
  DOUBLE_MUL_BIGINT = 279,
  DOUBLE_MUL_FLOAT = 280,
  DOUBLE_MUL_DOUBLE = 281,
  TINYINT_DIV_TINYINT = 282,
  TINYINT_DIV_SMALLINT = 283,
  TINYINT_DIV_INT = 284,
  TINYINT_DIV_BIGINT = 285,
  TINYINT_DIV_FLOAT = 286,
  TINYINT_DIV_DOUBLE = 287,
  SMALLINT_DIV_TINYINT = 288,
  SMALLINT_DIV_SMALLINT = 289,
  SMALLINT_DIV_INT = 290,
  SMALLINT_DIV_BIGINT = 291,
  SMALLINT_DIV_FLOAT = 292,
  SMALLINT_DIV_DOUBLE = 293,
  INT_DIV_TINYINT = 294,
  INT_DIV_SMALLINT = 295,
  INT_DIV_INT = 296,
  INT_DIV_BIGINT = 297,
  INT_DIV_FLOAT = 298,
  INT_DIV_DOUBLE = 299,
  BIGINT_DIV_TINYINT = 300,
  BIGINT_DIV_SMALLINT = 301,
  BIGINT_DIV_INT = 302,
  BIGINT_DIV_BIGINT = 303,
  BIGINT_DIV_FLOAT = 304,
  BIGINT_DIV_DOUBLE = 305,
  FLOAT_DIV_TINYINT = 306,
  FLOAT_DIV_SMALLINT = 307,
  FLOAT_DIV_INT = 308,
  FLOAT_DIV_BIGINT = 309,
  FLOAT_DIV_FLOAT = 310,
  FLOAT_DIV_DOUBLE = 311,
  DOUBLE_DIV_TINYINT = 312,
  DOUBLE_DIV_SMALLINT = 313,
  DOUBLE_DIV_INT = 314,
  DOUBLE_DIV_BIGINT = 315,
  DOUBLE_DIV_FLOAT = 316,
  DOUBLE_DIV_DOUBLE = 317,
  TINYINT_ADD_TINYINT = 318,
  TINYINT_ADD_SMALLINT = 319,
  TINYINT_ADD_INT = 320,
  TINYINT_ADD_BIGINT = 321,
  TINYINT_ADD_FLOAT = 322,
  TINYINT_ADD_DOUBLE = 323,
  SMALLINT_ADD_TINYINT = 324,
  SMALLINT_ADD_SMALLINT = 325,
  SMALLINT_ADD_INT = 326,
  SMALLINT_ADD_BIGINT = 327,
  SMALLINT_ADD_FLOAT = 328,
  SMALLINT_ADD_DOUBLE = 329,
  INT_ADD_TINYINT = 330,
  INT_ADD_SMALLINT = 331,
  INT_ADD_INT = 332,
  INT_ADD_BIGINT = 333,
  INT_ADD_FLOAT = 334,
  INT_ADD_DOUBLE = 335,
  BIGINT_ADD_TINYINT = 336,
  BIGINT_ADD_SMALLINT = 337,
  BIGINT_ADD_INT = 338,
  BIGINT_ADD_BIGINT = 339,
  BIGINT_ADD_FLOAT = 340,
  BIGINT_ADD_DOUBLE = 341,
  FLOAT_ADD_TINYINT = 342,
  FLOAT_ADD_SMALLINT = 343,
  FLOAT_ADD_INT = 344,
  FLOAT_ADD_BIGINT = 345,
  FLOAT_ADD_FLOAT = 346,
  FLOAT_ADD_DOUBLE = 347,
  DOUBLE_ADD_TINYINT = 348,
  DOUBLE_ADD_SMALLINT = 349,
  DOUBLE_ADD_INT = 350,
  DOUBLE_ADD_BIGINT = 351,
  DOUBLE_ADD_FLOAT = 352,
  DOUBLE_ADD_DOUBLE = 353,
  TINYINT_SUB_TINYINT = 354,
  TINYINT_SUB_SMALLINT = 355,
  TINYINT_SUB_INT = 356,
  TINYINT_SUB_BIGINT = 357,
  TINYINT_SUB_FLOAT = 358,
  TINYINT_SUB_DOUBLE = 359,
  SMALLINT_SUB_TINYINT = 360,
  SMALLINT_SUB_SMALLINT = 361,
  SMALLINT_SUB_INT = 362,
  SMALLINT_SUB_BIGINT = 363,
  SMALLINT_SUB_FLOAT = 364,
  SMALLINT_SUB_DOUBLE = 365,
  INT_SUB_TINYINT = 366,
  INT_SUB_SMALLINT = 367,
  INT_SUB_INT = 368,
  INT_SUB_BIGINT = 369,
  INT_SUB_FLOAT = 370,
  INT_SUB_DOUBLE = 371,
  BIGINT_SUB_TINYINT = 372,
  BIGINT_SUB_SMALLINT = 373,
  BIGINT_SUB_INT = 374,
  BIGINT_SUB_BIGINT = 375,
  BIGINT_SUB_FLOAT = 376,
  BIGINT_SUB_DOUBLE = 377,
  FLOAT_SUB_TINYINT = 378,
  FLOAT_SUB_SMALLINT = 379,
  FLOAT_SUB_INT = 380,
  FLOAT_SUB_BIGINT = 381,
  FLOAT_SUB_FLOAT = 382,
  FLOAT_SUB_DOUBLE = 383,
  DOUBLE_SUB_TINYINT = 384,
  DOUBLE_SUB_SMALLINT = 385,
  DOUBLE_SUB_INT = 386,
  DOUBLE_SUB_BIGINT = 387,
  DOUBLE_SUB_FLOAT = 388,
  DOUBLE_SUB_DOUBLE = 389,
  DECIMAL_MUL_DECIMAL = 390,
  DECIMAL_DIV_DECIMAL = 391,
  DECIMAL_ADD_DECIMAL = 392,
  DECIMAL_SUB_DECIMAL = 393,

// aggregate function
// dummy aggregate function id denotes its correlated function, and it shares
// the same value with the lower bound its correlated function ids



  AVG_TINYINT = 394,
  AVG_TINYINT_ACCU = 394,
  AVG_TINYINT_AMALG = 395,
  AVG_TINYINT_AVG = 396,

  AVG_SMALLINT = 397,
  AVG_SMALLINT_ACCU = 397,
  AVG_SMALLINT_AMALG = 398,
  AVG_SMALLINT_AVG = 399,

  AVG_INT = 400,
  AVG_INT_ACCU = 400,
  AVG_INT_AMALG = 401,
  AVG_INT_AVG = 402,

  AVG_BIGINT = 403,
  AVG_BIGINT_ACCU = 403,
  AVG_BIGINT_AMALG = 404,
  AVG_BIGINT_AVG = 405,

  AVG_FLOAT = 406,
  AVG_FLOAT_ACCU = 406,
  AVG_FLOAT_AMALG = 407,
  AVG_FLOAT_AVG = 408,

  AVG_DOUBLE = 409,
  AVG_DOUBLE_ACCU = 409,
  AVG_DOUBLE_AMALG = 410,
  AVG_DOUBLE_AVG = 411,

  MIN_TINYINT = 412,
  MIN_TINYINT_SMALLER = 412,

  MIN_SMALLINT = 413,
  MIN_SMALLINT_SMALLER = 413,

  MIN_INT = 414,
  MIN_INT_SMALLER = 414,

  MIN_BIGINT = 415,
  MIN_BIGINT_SMALLER = 415,

  MIN_FLOAT = 416,
  MIN_FLOAT_SMALLER = 416,

  MIN_DOUBLE = 417,
  MIN_DOUBLE_SMALLER = 417,

  MAX_TINYINT = 418,
  MAX_TINYINT_LARGER = 418,

  MAX_SMALLINT = 419,
  MAX_SMALLINT_LARGER = 419,

  MAX_INT = 420,
  MAX_INT_LARGER = 420,

  MAX_BIGINT = 421,
  MAX_BIGINT_LARGER = 421,

  MAX_FLOAT = 422,
  MAX_FLOAT_LARGER = 422,

  MAX_DOUBLE = 423,
  MAX_DOUBLE_LARGER = 423,

  SUM_TINYINT = 424,
  SUM_TINYINT_SUM = 424,
  SUM_TINYINT_ADD = 425,

  SUM_SMALLINT = 426,
  SUM_SMALLINT_SUM = 426,
  SUM_SMALLINT_ADD = 427,

  SUM_INT = 428,
  SUM_INT_SUM = 428,
  SUM_INT_ADD = 429,

  SUM_BIGINT = 430,
  SUM_BIGINT_SUM = 430,
  SUM_BIGINT_ADD = 431,

  SUM_FLOAT = 432,
  SUM_FLOAT_SUM = 432,
  SUM_FLOAT_ADD = 433,

  SUM_DOUBLE = 434,
  SUM_DOUBLE_SUM = 434,
  SUM_DOUBLE_ADD = 435,

  AVG_DECIMAL = 436,
  AVG_DECIMAL_ACCU = 436,
  AVG_DECIMAL_AMALG = 437,
  AVG_DECIMAL_AVG = 438,

  MIN_DECIMAL = 439,
  MIN_DECIMAL_SMALLER = 439,

  MAX_DECIMAL = 440,
  MAX_DECIMAL_LARGER = 440,

  SUM_DECIMAL = 441,
  SUM_DECIMAL_SUM = 441,
  SUM_DECIMAL_ADD = 442,

  MIN_STRING = 443,
  MIN_STRING_SMALLER = 443,

  MAX_STRING = 444,
  MAX_STRING_LARGER = 444,

  MIN_BPCHAR = 445,
  MIN_BPCHAR_SMALLER = 445,

  MAX_BPCHAR = 446,
  MAX_BPCHAR_LARGER = 446,

  MIN_DATE = 447,
  MIN_DATE_SMALLER = 447,

  MIN_TIME = 448,
  MIN_TIME_SMALLER = 448,

  MAX_DATE = 449,
  MAX_DATE_LARGER = 449,

  MAX_TIME = 450,
  MAX_TIME_LARGER = 450,

  MIN_TIMESTAMP = 451,
  MIN_TIMESTAMP_SMALLER = 451,

  MAX_TIMESTAMP = 452,
  MAX_TIMESTAMP_LARGER = 452,

  COUNT_STAR = 453,

  COUNT = 454,
  COUNT_INC = 454,
  COUNT_ADD = 455,



  TINYINT_TO_SMALLINT = 456,
  TINYINT_TO_INT = 457,
  TINYINT_TO_BIGINT = 458,
  TINYINT_TO_FLOAT = 459,
  TINYINT_TO_DOUBLE = 460,
  TINYINT_TO_DECIMAL = 461,
  SMALLINT_TO_TINYINT = 462,
  SMALLINT_TO_INT = 463,
  SMALLINT_TO_BIGINT = 464,
  SMALLINT_TO_FLOAT = 465,
  SMALLINT_TO_DOUBLE = 466,
  SMALLINT_TO_DECIMAL = 467,
  INT_TO_TINYINT = 468,
  INT_TO_SMALLINT = 469,
  INT_TO_BIGINT = 470,
  INT_TO_FLOAT = 471,
  INT_TO_DOUBLE = 472,
  INT_TO_DECIMAL = 473,
  BIGINT_TO_TINYINT = 474,
  BIGINT_TO_SMALLINT = 475,
  BIGINT_TO_INT = 476,
  BIGINT_TO_FLOAT = 477,
  BIGINT_TO_DOUBLE = 478,
  BIGINT_TO_DECIMAL = 479,
  FLOAT_TO_TINYINT = 480,
  FLOAT_TO_SMALLINT = 481,
  FLOAT_TO_INT = 482,
  FLOAT_TO_BIGINT = 483,
  FLOAT_TO_DOUBLE = 484,
  FLOAT_TO_DECIMAL = 485,
  DOUBLE_TO_TINYINT = 486,
  DOUBLE_TO_SMALLINT = 487,
  DOUBLE_TO_INT = 488,
  DOUBLE_TO_BIGINT = 489,
  DOUBLE_TO_FLOAT = 490,
  DOUBLE_TO_DECIMAL = 491,
  DECIMAL_TO_TINYINT = 492,
  DECIMAL_TO_SMALLINT = 493,
  DECIMAL_TO_INT = 494,
  DECIMAL_TO_BIGINT = 495,
  DECIMAL_TO_FLOAT = 496,
  DECIMAL_TO_DOUBLE = 497,


  INTERVAL_LESS_THAN_INTERVAL = 498,
  INTERVAL_LESS_EQ_INTERVAL = 499,
  INTERVAL_EQUAL_INTERVAL = 500,
  INTERVAL_NOT_EQUAL_INTERVAL = 501,
  INTERVAL_GREATER_THAN_INTERVAL = 502,
  INTERVAL_GREATER_EQ_INTERVAL = 503,
  DATE_LESS_THAN_TIMESTAMP = 504,
  DATE_LESS_EQ_TIMESTAMP = 505,
  DATE_EQUAL_TIMESTAMP = 506,
  DATE_NOT_EQUAL_TIMESTAMP = 507,
  DATE_GREATER_THAN_TIMESTAMP = 508,
  DATE_GREATER_EQ_TIMESTAMP = 509,
  TIMESTAMP_LESS_THAN_DATE = 510,
  TIMESTAMP_LESS_EQ_DATE = 511,
  TIMESTAMP_EQUAL_DATE = 512,
  TIMESTAMP_NOT_EQUAL_DATE = 513,
  TIMESTAMP_GREATER_THAN_DATE = 514,
  TIMESTAMP_GREATER_EQ_DATE = 515,


  INTERVAL_ADD_INTERVAL = 516,
  INTERVAL_SUB_INTERVAL = 517,

  // clang-format on

  // cast related functions
  SMALLINT_TO_TEXT,
  INT_TO_TEXT,
  BIGINT_TO_TEXT,
  FLOAT_TO_TEXT,
  DOUBLE_TO_TEXT,
  DECIMAL_TO_TEXT,
  DATE_TO_TEXT,
  BOOL_TO_TEXT,
  TIME_TO_TEXT,
  INTERVAL_TO_TEXT,
  TIMESTAMPTZ_TO_TEXT,
  DOUBLE_TO_TIMESTAMP,

  // date/time related functions
  DATE_TO_TIMESTAMP,
  TIMESTAMP_TO_DATE,
  IS_TIMESTAMP_FINITE,
  TIMESTAMP_DATE_PART,
  TIMESTAMP_DATE_TRUNC,
  TIMESTAMP_TO_TEXT,
  TIME_SUB_TIME,
  DATE_ADD_INT,
  DATE_SUB_INT,
  // interval related functions
  TIMESTAMP_SUB_TIMESTAMP,
  DATE_ADD_INTERVAL,
  DATE_SUB_INTERVAL,
  TIME_ADD_INTERVAL,
  TIME_SUB_INTERVAL,
  TIMESTAMP_ADD_INTERVAL,
  TIMESTAMP_SUB_INTERVAL,

  // string related functions
  CHAR_TO_STRING,
  STRING_OCTET_LENGTH,
  BPCHAR_OCTET_LENGTH,
  STRING_CHAR_LENGTH,
  BPCHAR_CHAR_LENGTH,
  STRING_LIKE,
  BPCHAR_LIKE,
  STRING_NOT_LIKE,
  BPCHAR_NOT_LIKE,
  STRING_SUBSTRING,
  STRING_SUBSTRING_NOLEN,
  STRING_LOWER,
  STRING_UPPER,
  STRING_CONCAT,
  STRING_POSITION,
  STRING_STRPOS,
  STRING_INITCAP,
  STRING_ASCII,
  STRING_VARCHAR,
  STRING_LTRIM_BLANK,
  STRING_LTRIM_CHARS,
  STRING_RTRIM_BLANK,
  STRING_RTRIM_CHARS,
  STRING_BTRIM_BLANK,
  STRING_BTRIM_CHARS,
  STRING_REPEAT,
  STRING_CHR,
  STRING_BPCHAR,
  STRING_LPAD,
  STRING_RPAD,
  STRING_LPAD_NOFILL,
  STRING_RPAD_NOFILL,
  BPCHAR_EQUAL_BPCHAR,
  BPCHAR_NOT_EQUAL_BPCHAR,
  BPCHAR_LESS_THAN_BPCHAR,
  BPCHAR_LESS_EQ_BPCHAR,
  BPCHAR_GREATER_THAN_BPCHAR,
  BPCHAR_GREATER_EQ_BPCHAR,
  STRING_TRANSLATE,
  STRING_SPLIT_PART,

  // binary related functions
  BINARY_OCTET_LENGTH,

  // array related functions
  FLOAT_ARRAY_EUCLIDEAN_METRIC,
  DOUBLE_ARRAY_EUCLIDEAN_METRIC,
  FLOAT_ARRAY_COSINE_DISTANCE,
  DOUBLE_ARRAY_COSINE_DISTANCE,
  BIGINT_ARRAY_OVERLAP,
  BIGINT_ARRAY_CONTAINS,
  BIGINT_ARRAY_CONTAINED,

  // mathematic functions
  DOUBLE_ABS,
  FLOAT_ABS,
  INT64_ABS,
  INT32_ABS,
  INT16_ABS,
  DOUBLE_CBRT,
  DOUBLE_SQRT,
  INT16_BINARY_NOT,
  INT32_BINARY_NOT,
  INT64_BINARY_NOT,
  INT16_BINARY_SHIFT_LEFT,
  INT32_BINARY_SHIFT_LEFT,
  INT64_BINARY_SHIFT_LEFT,
  INT16_BINARY_SHIFT_RIGHT,
  INT32_BINARY_SHIFT_RIGHT,
  INT64_BINARY_SHIFT_RIGHT,
  INT16_BINARY_AND,
  INT32_BINARY_AND,
  INT64_BINARY_AND,
  INT16_BINARY_OR,
  INT32_BINARY_OR,
  INT64_BINARY_OR,
  INT16_BINARY_XOR,
  INT32_BINARY_XOR,
  INT64_BINARY_XOR,
  INT16_MOD,
  INT32_MOD,
  INT16_32_MOD,
  INT32_16_MOD,
  INT64_MOD,
  DOUBLE_POW,
  DOUBLE_CEIL,
  DOUBLE_FLOOR,
  DOUBLE_ROUND,
  DOUBLE_TRUNC,
  DOUBLE_SIGN,
  DOUBLE_EXP,
  DOUBLE_LN,
  DOUBLE_LG,
  DOUBLE_LOG,
  DOUBLE_ACOS,
  DOUBLE_ASIN,
  DOUBLE_ATAN,
  DOUBLE_ATAN2,
  DOUBLE_COS,
  DOUBLE_COT,
  DOUBLE_SIN,
  DOUBLE_TAN,
  DOUBLE_DEGREES,
  DOUBLE_RADIANS,

  // decimal function
  DECIMAL_ABS,
  DECIMAL_SIGN,
  DECIMAL_CEIL,
  DECIMAL_FLOOR,
  DECIMAL_ROUND,
  DECIMAL_ROUND_WITHOUT_SCALE,
  DECIMAL_TRUNC,
  DECIMAL_TRUNC_WITHOUT_SCALE,
  DECIMAL_TO_DECIMAL,
  DECIMAL_MOD,
  DECIMAL_SQRT,
  DECIMAL_EXP,
  DECIMAL_LN,
  DECIMAL_LOG,
  DECIMAL_FAC,
  DECIMAL_POW,

  TEXT_TO_SMALLINT,
  TEXT_TO_INT,
  TEXT_TO_BIGINT,
  TEXT_TO_FLOAT,
  TEXT_TO_DOUBLE,
  CHAR_TO_BYTEA,
  SMALLINT_TO_BYTEA,
  INT_TO_BYTEA,
  BIGINT_TO_BYTEA,
  FLOAT_TO_BYTEA,
  DOUBLE_TO_BYTEA,
  BOOL_TO_BYTEA,
  TEXT_TO_BYTEA,
  DATE_TO_BYTEA,
  TIME_TO_BYTEA,
  TIMESTAMP_TO_BYTEA,
  TIMESTAMPTZ_TO_BYTEA,
  INTERVAL_TO_BYTEA,
  DECIMAL_TO_BYTEA,
  SMALLINT_TO_BOOLEAN,
  INT_TO_BOOLEAN,
  BIGINT_TO_BOOLEAN,
  BOOLEAN_TO_SMALLINT,
  BOOLEAN_TO_INT,
  BOOLEAN_TO_BIGINT,
  TEXT_TO_DECIMAL,
  TO_NUMBER,
  // random()
  RANDOMF,
  SETSEEDF,

  // Other aggregate functions
  STDDEV_SAMP_TINYINT,
  STDDEV_SAMP_TINYINT_ACCU = STDDEV_SAMP_TINYINT,
  STDDEV_SAMP_TINYINT_AMALG,
  STDDEV_SAMP_TINYINT_STDDEV_SAMP,
  STDDEV_SAMP_SMALLINT,
  STDDEV_SAMP_SMALLINT_ACCU = STDDEV_SAMP_SMALLINT,
  STDDEV_SAMP_SMALLINT_AMALG,
  STDDEV_SAMP_SMALLINT_STDDEV_SAMP,
  STDDEV_SAMP_INT,
  STDDEV_SAMP_INT_ACCU = STDDEV_SAMP_INT,
  STDDEV_SAMP_INT_AMALG,
  STDDEV_SAMP_INT_STDDEV_SAMP,
  STDDEV_SAMP_BIGINT,
  STDDEV_SAMP_BIGINT_ACCU = STDDEV_SAMP_BIGINT,
  STDDEV_SAMP_BIGINT_AMALG,
  STDDEV_SAMP_BIGINT_STDDEV_SAMP,
  STDDEV_SAMP_FLOAT,
  STDDEV_SAMP_FLOAT_ACCU = STDDEV_SAMP_FLOAT,
  STDDEV_SAMP_FLOAT_AMALG,
  STDDEV_SAMP_FLOAT_STDDEV_SAMP,
  STDDEV_SAMP_DOUBLE,
  STDDEV_SAMP_DOUBLE_ACCU = STDDEV_SAMP_DOUBLE,
  STDDEV_SAMP_DOUBLE_AMALG,
  STDDEV_SAMP_DOUBLE_STDDEV_SAMP,
  STDDEV_SAMP_DECIMAL,
  STDDEV_SAMP_DECIMAL_ACCU = STDDEV_SAMP_DECIMAL,
  STDDEV_SAMP_DECIMAL_AMALG,
  STDDEV_SAMP_DECIMAL_STDDEV_SAMP,

  STDDEV_POP_TINYINT,
  STDDEV_POP_TINYINT_ACCU = STDDEV_POP_TINYINT,
  STDDEV_POP_TINYINT_AMALG,
  STDDEV_POP_TINYINT_STDDEV_POP,
  STDDEV_POP_SMALLINT,
  STDDEV_POP_SMALLINT_ACCU = STDDEV_POP_SMALLINT,
  STDDEV_POP_SMALLINT_AMALG,
  STDDEV_POP_SMALLINT_STDDEV_POP,
  STDDEV_POP_INT,
  STDDEV_POP_INT_ACCU = STDDEV_POP_INT,
  STDDEV_POP_INT_AMALG,
  STDDEV_POP_INT_STDDEV_POP,
  STDDEV_POP_BIGINT,
  STDDEV_POP_BIGINT_ACCU = STDDEV_POP_BIGINT,
  STDDEV_POP_BIGINT_AMALG,
  STDDEV_POP_BIGINT_STDDEV_POP,
  STDDEV_POP_FLOAT,
  STDDEV_POP_FLOAT_ACCU = STDDEV_POP_FLOAT,
  STDDEV_POP_FLOAT_AMALG,
  STDDEV_POP_FLOAT_STDDEV_POP,
  STDDEV_POP_DOUBLE,
  STDDEV_POP_DOUBLE_ACCU = STDDEV_POP_DOUBLE,
  STDDEV_POP_DOUBLE_AMALG,
  STDDEV_POP_DOUBLE_STDDEV_POP,
  STDDEV_POP_DECIMAL,
  STDDEV_POP_DECIMAL_ACCU = STDDEV_POP_DECIMAL,
  STDDEV_POP_DECIMAL_AMALG,
  STDDEV_POP_DECIMAL_STDDEV_POP,

  STDDEV_TINYINT,
  STDDEV_TINYINT_ACCU = STDDEV_TINYINT,
  STDDEV_TINYINT_AMALG,
  STDDEV_TINYINT_STDDEV,
  STDDEV_SMALLINT,
  STDDEV_SMALLINT_ACCU = STDDEV_SMALLINT,
  STDDEV_SMALLINT_AMALG,
  STDDEV_SMALLINT_STDDEV,
  STDDEV_INT,
  STDDEV_INT_ACCU = STDDEV_INT,
  STDDEV_INT_AMALG,
  STDDEV_INT_STDDEV,
  STDDEV_BIGINT,
  STDDEV_BIGINT_ACCU = STDDEV_BIGINT,
  STDDEV_BIGINT_AMALG,
  STDDEV_BIGINT_STDDEV,
  STDDEV_FLOAT,
  STDDEV_FLOAT_ACCU = STDDEV_FLOAT,
  STDDEV_FLOAT_AMALG,
  STDDEV_FLOAT_STDDEV,
  STDDEV_DOUBLE,
  STDDEV_DOUBLE_ACCU = STDDEV_DOUBLE,
  STDDEV_DOUBLE_AMALG,
  STDDEV_DOUBLE_STDDEV,
  STDDEV_DECIMAL,
  STDDEV_DECIMAL_ACCU = STDDEV_DECIMAL,
  STDDEV_DECIMAL_AMALG,
  STDDEV_DECIMAL_STDDEV,

  // regular expression functions
  REGEX_REPLACE,
  TEXT_REGEX_EQ,
  TEXT_IC_REGEX_EQ,
  TEXT_REGEX_NE,
  TEXT_IC_REGEX_NE,
  BPCHAR_REGEX_EQ,
  BPCHAR_IC_REGEX_EQ,
  BPCHAR_REGEX_NE,
  BPCHAR_IC_REGEX_NE,

  SUM_BIGINT_SUM_FINAL,

  // Do nothing
  DONOTHING,

  FUNCINVALID = 38324,
};

#endif  // DBCOMMON_SRC_DBCOMMON_FUNCTION_FUNC_KIND_H_
